package com.thinkit.bigdata.web.model.bus;

import java.util.ArrayList;
import java.util.List;

public class BusModelRuleExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BusModelRuleExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andModelidIsNull() {
            addCriterion("modelId is null");
            return (Criteria) this;
        }

        public Criteria andModelidIsNotNull() {
            addCriterion("modelId is not null");
            return (Criteria) this;
        }

        public Criteria andModelidEqualTo(Long value) {
            addCriterion("modelId =", value, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidNotEqualTo(Long value) {
            addCriterion("modelId <>", value, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidGreaterThan(Long value) {
            addCriterion("modelId >", value, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidGreaterThanOrEqualTo(Long value) {
            addCriterion("modelId >=", value, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidLessThan(Long value) {
            addCriterion("modelId <", value, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidLessThanOrEqualTo(Long value) {
            addCriterion("modelId <=", value, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidIn(List<Long> values) {
            addCriterion("modelId in", values, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidNotIn(List<Long> values) {
            addCriterion("modelId not in", values, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidBetween(Long value1, Long value2) {
            addCriterion("modelId between", value1, value2, "modelid");
            return (Criteria) this;
        }

        public Criteria andModelidNotBetween(Long value1, Long value2) {
            addCriterion("modelId not between", value1, value2, "modelid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidIsNull() {
            addCriterion("ruleTypeId is null");
            return (Criteria) this;
        }

        public Criteria andRuletypeidIsNotNull() {
            addCriterion("ruleTypeId is not null");
            return (Criteria) this;
        }

        public Criteria andRuletypeidEqualTo(Long value) {
            addCriterion("ruleTypeId =", value, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidNotEqualTo(Long value) {
            addCriterion("ruleTypeId <>", value, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidGreaterThan(Long value) {
            addCriterion("ruleTypeId >", value, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidGreaterThanOrEqualTo(Long value) {
            addCriterion("ruleTypeId >=", value, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidLessThan(Long value) {
            addCriterion("ruleTypeId <", value, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidLessThanOrEqualTo(Long value) {
            addCriterion("ruleTypeId <=", value, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidIn(List<Long> values) {
            addCriterion("ruleTypeId in", values, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidNotIn(List<Long> values) {
            addCriterion("ruleTypeId not in", values, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidBetween(Long value1, Long value2) {
            addCriterion("ruleTypeId between", value1, value2, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypeidNotBetween(Long value1, Long value2) {
            addCriterion("ruleTypeId not between", value1, value2, "ruletypeid");
            return (Criteria) this;
        }

        public Criteria andRuletypenameIsNull() {
            addCriterion("ruleTypeName is null");
            return (Criteria) this;
        }

        public Criteria andRuletypenameIsNotNull() {
            addCriterion("ruleTypeName is not null");
            return (Criteria) this;
        }

        public Criteria andRuletypenameEqualTo(String value) {
            addCriterion("ruleTypeName =", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameNotEqualTo(String value) {
            addCriterion("ruleTypeName <>", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameGreaterThan(String value) {
            addCriterion("ruleTypeName >", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameGreaterThanOrEqualTo(String value) {
            addCriterion("ruleTypeName >=", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameLessThan(String value) {
            addCriterion("ruleTypeName <", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameLessThanOrEqualTo(String value) {
            addCriterion("ruleTypeName <=", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameLike(String value) {
            addCriterion("ruleTypeName like", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameNotLike(String value) {
            addCriterion("ruleTypeName not like", value, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameIn(List<String> values) {
            addCriterion("ruleTypeName in", values, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameNotIn(List<String> values) {
            addCriterion("ruleTypeName not in", values, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameBetween(String value1, String value2) {
            addCriterion("ruleTypeName between", value1, value2, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuletypenameNotBetween(String value1, String value2) {
            addCriterion("ruleTypeName not between", value1, value2, "ruletypename");
            return (Criteria) this;
        }

        public Criteria andRuleidIsNull() {
            addCriterion("ruleId is null");
            return (Criteria) this;
        }

        public Criteria andRuleidIsNotNull() {
            addCriterion("ruleId is not null");
            return (Criteria) this;
        }

        public Criteria andRuleidEqualTo(Long value) {
            addCriterion("ruleId =", value, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidNotEqualTo(Long value) {
            addCriterion("ruleId <>", value, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidGreaterThan(Long value) {
            addCriterion("ruleId >", value, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidGreaterThanOrEqualTo(Long value) {
            addCriterion("ruleId >=", value, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidLessThan(Long value) {
            addCriterion("ruleId <", value, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidLessThanOrEqualTo(Long value) {
            addCriterion("ruleId <=", value, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidIn(List<Long> values) {
            addCriterion("ruleId in", values, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidNotIn(List<Long> values) {
            addCriterion("ruleId not in", values, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidBetween(Long value1, Long value2) {
            addCriterion("ruleId between", value1, value2, "ruleid");
            return (Criteria) this;
        }

        public Criteria andRuleidNotBetween(Long value1, Long value2) {
            addCriterion("ruleId not between", value1, value2, "ruleid");
            return (Criteria) this;
        }

        public Criteria andUserforIsNull() {
            addCriterion("userFor is null");
            return (Criteria) this;
        }

        public Criteria andUserforIsNotNull() {
            addCriterion("userFor is not null");
            return (Criteria) this;
        }

        public Criteria andUserforEqualTo(Integer value) {
            addCriterion("userFor =", value, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforNotEqualTo(Integer value) {
            addCriterion("userFor <>", value, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforGreaterThan(Integer value) {
            addCriterion("userFor >", value, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforGreaterThanOrEqualTo(Integer value) {
            addCriterion("userFor >=", value, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforLessThan(Integer value) {
            addCriterion("userFor <", value, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforLessThanOrEqualTo(Integer value) {
            addCriterion("userFor <=", value, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforIn(List<Integer> values) {
            addCriterion("userFor in", values, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforNotIn(List<Integer> values) {
            addCriterion("userFor not in", values, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforBetween(Integer value1, Integer value2) {
            addCriterion("userFor between", value1, value2, "userfor");
            return (Criteria) this;
        }

        public Criteria andUserforNotBetween(Integer value1, Integer value2) {
            addCriterion("userFor not between", value1, value2, "userfor");
            return (Criteria) this;
        }

        public Criteria andRulenameIsNull() {
            addCriterion("ruleName is null");
            return (Criteria) this;
        }

        public Criteria andRulenameIsNotNull() {
            addCriterion("ruleName is not null");
            return (Criteria) this;
        }

        public Criteria andRulenameEqualTo(String value) {
            addCriterion("ruleName =", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameNotEqualTo(String value) {
            addCriterion("ruleName <>", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameGreaterThan(String value) {
            addCriterion("ruleName >", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameGreaterThanOrEqualTo(String value) {
            addCriterion("ruleName >=", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameLessThan(String value) {
            addCriterion("ruleName <", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameLessThanOrEqualTo(String value) {
            addCriterion("ruleName <=", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameLike(String value) {
            addCriterion("ruleName like", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameNotLike(String value) {
            addCriterion("ruleName not like", value, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameIn(List<String> values) {
            addCriterion("ruleName in", values, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameNotIn(List<String> values) {
            addCriterion("ruleName not in", values, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameBetween(String value1, String value2) {
            addCriterion("ruleName between", value1, value2, "rulename");
            return (Criteria) this;
        }

        public Criteria andRulenameNotBetween(String value1, String value2) {
            addCriterion("ruleName not between", value1, value2, "rulename");
            return (Criteria) this;
        }

        public Criteria andSignscoreIsNull() {
            addCriterion("signScore is null");
            return (Criteria) this;
        }

        public Criteria andSignscoreIsNotNull() {
            addCriterion("signScore is not null");
            return (Criteria) this;
        }

        public Criteria andSignscoreEqualTo(Integer value) {
            addCriterion("signScore =", value, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreNotEqualTo(Integer value) {
            addCriterion("signScore <>", value, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreGreaterThan(Integer value) {
            addCriterion("signScore >", value, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreGreaterThanOrEqualTo(Integer value) {
            addCriterion("signScore >=", value, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreLessThan(Integer value) {
            addCriterion("signScore <", value, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreLessThanOrEqualTo(Integer value) {
            addCriterion("signScore <=", value, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreIn(List<Integer> values) {
            addCriterion("signScore in", values, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreNotIn(List<Integer> values) {
            addCriterion("signScore not in", values, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreBetween(Integer value1, Integer value2) {
            addCriterion("signScore between", value1, value2, "signscore");
            return (Criteria) this;
        }

        public Criteria andSignscoreNotBetween(Integer value1, Integer value2) {
            addCriterion("signScore not between", value1, value2, "signscore");
            return (Criteria) this;
        }

        public Criteria andFatefulIsNull() {
            addCriterion("fateful is null");
            return (Criteria) this;
        }

        public Criteria andFatefulIsNotNull() {
            addCriterion("fateful is not null");
            return (Criteria) this;
        }

        public Criteria andFatefulEqualTo(Integer value) {
            addCriterion("fateful =", value, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulNotEqualTo(Integer value) {
            addCriterion("fateful <>", value, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulGreaterThan(Integer value) {
            addCriterion("fateful >", value, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulGreaterThanOrEqualTo(Integer value) {
            addCriterion("fateful >=", value, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulLessThan(Integer value) {
            addCriterion("fateful <", value, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulLessThanOrEqualTo(Integer value) {
            addCriterion("fateful <=", value, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulIn(List<Integer> values) {
            addCriterion("fateful in", values, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulNotIn(List<Integer> values) {
            addCriterion("fateful not in", values, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulBetween(Integer value1, Integer value2) {
            addCriterion("fateful between", value1, value2, "fateful");
            return (Criteria) this;
        }

        public Criteria andFatefulNotBetween(Integer value1, Integer value2) {
            addCriterion("fateful not between", value1, value2, "fateful");
            return (Criteria) this;
        }

        public Criteria andScorepertimeIsNull() {
            addCriterion("scorePerTime is null");
            return (Criteria) this;
        }

        public Criteria andScorepertimeIsNotNull() {
            addCriterion("scorePerTime is not null");
            return (Criteria) this;
        }

        public Criteria andScorepertimeEqualTo(Integer value) {
            addCriterion("scorePerTime =", value, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeNotEqualTo(Integer value) {
            addCriterion("scorePerTime <>", value, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeGreaterThan(Integer value) {
            addCriterion("scorePerTime >", value, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("scorePerTime >=", value, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeLessThan(Integer value) {
            addCriterion("scorePerTime <", value, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeLessThanOrEqualTo(Integer value) {
            addCriterion("scorePerTime <=", value, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeIn(List<Integer> values) {
            addCriterion("scorePerTime in", values, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeNotIn(List<Integer> values) {
            addCriterion("scorePerTime not in", values, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeBetween(Integer value1, Integer value2) {
            addCriterion("scorePerTime between", value1, value2, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andScorepertimeNotBetween(Integer value1, Integer value2) {
            addCriterion("scorePerTime not between", value1, value2, "scorepertime");
            return (Criteria) this;
        }

        public Criteria andMaxscoreIsNull() {
            addCriterion("maxScore is null");
            return (Criteria) this;
        }

        public Criteria andMaxscoreIsNotNull() {
            addCriterion("maxScore is not null");
            return (Criteria) this;
        }

        public Criteria andMaxscoreEqualTo(Integer value) {
            addCriterion("maxScore =", value, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreNotEqualTo(Integer value) {
            addCriterion("maxScore <>", value, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreGreaterThan(Integer value) {
            addCriterion("maxScore >", value, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreGreaterThanOrEqualTo(Integer value) {
            addCriterion("maxScore >=", value, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreLessThan(Integer value) {
            addCriterion("maxScore <", value, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreLessThanOrEqualTo(Integer value) {
            addCriterion("maxScore <=", value, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreIn(List<Integer> values) {
            addCriterion("maxScore in", values, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreNotIn(List<Integer> values) {
            addCriterion("maxScore not in", values, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreBetween(Integer value1, Integer value2) {
            addCriterion("maxScore between", value1, value2, "maxscore");
            return (Criteria) this;
        }

        public Criteria andMaxscoreNotBetween(Integer value1, Integer value2) {
            addCriterion("maxScore not between", value1, value2, "maxscore");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}